﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace Cqrs.Infrastructure.Database
{
    public interface IEventStore
    {
        void SaveEvents(Guid aggregateId, IEnumerable<Event> events, int expectedVersion, Type aggregateRootType);
        List<Event> GetEventsForAggregate(Guid aggregateId, Assembly assembly);
        List<AggregateRootModel> GetAggregateRoots(Type AggregrateRootType);
        IEventPublisher Publisher { get; }
    }
}
